// 引入 http 模块用于创建服务器
const http = require('http');
// 引入 fs 模块用于文件操作
const fs = require('fs');
// 引入 path 模块用于处理文件路径
const path = require('path');

// 获取命令行参数（第一个参数是 node 路径，第二个是脚本路径，所以从第三个开始是我们传入的参数）
const args = process.argv.slice(2);
// 要读取的文件路径
let filePath;

// 判断是否传入了命令行参数（文件名称）
if (args.length > 0) {
  // 拼接当前目录和传入的文件名称得到文件路径
  filePath = path.join(__dirname, args[0]);
} else {
  // 未传入参数，默认读取当前文件（fileReader1.js）的路径
  filePath = path.join(__dirname, 'fileReader1.js');
}

// 创建 HTTP 服务器
const server = http.createServer((req, res) => {
  // 读取文件内容
  fs.readFile(filePath, 'utf8', (err, data) => {
    if (err) {
      // 文件读取失败，设置响应状态码为 404，并返回错误信息
      res.writeHead(404, { 'Content-Type': 'text/plain' });
      res.end(`错误：文件 ${filePath} 不存在或无法读取。`);
    } else {
      // 文件读取成功，设置响应状态码为 200，内容类型为纯文本，并返回文件内容
      res.writeHead(200, { 'Content-Type': 'text/plain' });
      res.end(data);
    }
  });
});

// 服务器监听 8081 端口
server.listen(8081, () => {
  console.log('服务器已启动，监听端口 8081。请访问 http://localhost:8081');
});